package com.pg.agent.engine.client.model.llm;


import com.pg.agent.engine.client.model.ComponentInParam;
import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 大模型调用信息类
 *
 * @author huhuaping
 * @date 2023/11/18 10:21
 */
@Data
public class LLMCallInfo {

    /**
     * 系统提示词
     */
    private String systemPrompt;
    /**
     * 用户提示词
     */
    private String userPrompt;
    /**
     * 模型响应
     */
    private String response;
    /**
     * 图片路径集合
     */
    private List<String> imageList;
    /**
     * 模型
     */
    private String model;
    /**
     * 模型版本
     */
    private String modelVersion;
    /**
     * 调用时长
     */
    private long timeLong;
    /**
     * 调用对象
     */
    private String callName;
    /**
     * 调用类型
     */
    private String callType;
    /**
     * 开始调用时长
     */
    private Date callStartTime;
    /**
     * 调用结束时间
     */
    private Date callEndTime;
    /**
     * sopID
     */
    private long sopId;
    /**
     * stateId
     */
    private long stateId;
    /**
     * agentId
     */
    private long agentId;


    private String arguments;

    public void setInfo(String systemPrompt,String userPrompt,String response){
        this.systemPrompt = systemPrompt;
        this.userPrompt = userPrompt;
        this.response = response;

    };
    /**
     * agent 所有组件需要用户输入的入参
     */
    private Map<Long,List<ComponentInParam>> componentUserInPutParam;
    public LLMCallInfo() {

    }
    public LLMCallInfo(String callName, String callType) {
        this.callName = callName;
        this.callType = callType;
    }
    public LLMCallInfo(Long sopId, String callName, String callType) {
        this.sopId = sopId;
        this.callName = callName;
        this.callType = callType;
    }

    public LLMCallInfo(Long sopId, Long agentId, String callName, String callType) {
        this.agentId = agentId;
        this.sopId = sopId;
        this.callName = callName;
        this.callType = callType;
    }
}
